package com.sunny.fetch.pojo;

import javax.persistence.*;

@Table(name = "f_dividend")
public class FDividend {
    @Id
    private Long tid;

    /**
     * TS代码
     */
    @Column(name = "ts_code")
    private String tsCode;

    /**
     * 分红年度
     */
    @Column(name = "end_date")
    private String endDate;

    /**
     * 预案公告日
     */
    @Column(name = "ann_date")
    private String annDate;

    /**
     * 实施进度
     */
    @Column(name = "div_proc")
    private String divProc;

    /**
     * 每股送转
     */
    @Column(name = "stk_div")
    private Float stkDiv;

    /**
     * 每股送股比例
     */
    @Column(name = "stk_bo_rate")
    private Float stkBoRate;

    /**
     * 每股转增比例
     */
    @Column(name = "stk_co_rate")
    private Float stkCoRate;

    /**
     * 每股分红（税后）
     */
    @Column(name = "cash_div")
    private Float cashDiv;

    /**
     * 每股分红（税前）
     */
    @Column(name = "cash_div_tax")
    private Float cashDivTax;

    /**
     * 股权登记日
     */
    @Column(name = "record_date")
    private String recordDate;

    /**
     * 除权除息日
     */
    @Column(name = "ex_date")
    private String exDate;

    /**
     * 派息日
     */
    @Column(name = "pay_date")
    private String payDate;

    /**
     * 红股上市日
     */
    @Column(name = "div_listdate")
    private String divListdate;

    /**
     * 实施公告日
     */
    @Column(name = "imp_ann_date")
    private String impAnnDate;

    /**
     * 基准日
     */
    @Column(name = "base_date")
    private String baseDate;

    /**
     * 基准股本（万）
     */
    @Column(name = "base_share")
    private Float baseShare;

    public FDividend(Long tid, String tsCode, String endDate, String annDate, String divProc, Float stkDiv, Float stkBoRate, Float stkCoRate, Float cashDiv, Float cashDivTax, String recordDate, String exDate, String payDate, String divListdate, String impAnnDate, String baseDate, Float baseShare) {
        this.tid = tid;
        this.tsCode = tsCode;
        this.endDate = endDate;
        this.annDate = annDate;
        this.divProc = divProc;
        this.stkDiv = stkDiv;
        this.stkBoRate = stkBoRate;
        this.stkCoRate = stkCoRate;
        this.cashDiv = cashDiv;
        this.cashDivTax = cashDivTax;
        this.recordDate = recordDate;
        this.exDate = exDate;
        this.payDate = payDate;
        this.divListdate = divListdate;
        this.impAnnDate = impAnnDate;
        this.baseDate = baseDate;
        this.baseShare = baseShare;
    }

    public FDividend() {
        super();
    }

    /**
     * @return tid
     */
    public Long getTid() {
        return tid;
    }

    /**
     * @param tid
     */
    public void setTid(Long tid) {
        this.tid = tid;
    }

    /**
     * 获取TS代码
     *
     * @return ts_code - TS代码
     */
    public String getTsCode() {
        return tsCode;
    }

    /**
     * 设置TS代码
     *
     * @param tsCode TS代码
     */
    public void setTsCode(String tsCode) {
        this.tsCode = tsCode;
    }

    /**
     * 获取分红年度
     *
     * @return end_date - 分红年度
     */
    public String getEndDate() {
        return endDate;
    }

    /**
     * 设置分红年度
     *
     * @param endDate 分红年度
     */
    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    /**
     * 获取预案公告日
     *
     * @return ann_date - 预案公告日
     */
    public String getAnnDate() {
        return annDate;
    }

    /**
     * 设置预案公告日
     *
     * @param annDate 预案公告日
     */
    public void setAnnDate(String annDate) {
        this.annDate = annDate;
    }

    /**
     * 获取实施进度
     *
     * @return div_proc - 实施进度
     */
    public String getDivProc() {
        return divProc;
    }

    /**
     * 设置实施进度
     *
     * @param divProc 实施进度
     */
    public void setDivProc(String divProc) {
        this.divProc = divProc;
    }

    /**
     * 获取每股送转
     *
     * @return stk_div - 每股送转
     */
    public Float getStkDiv() {
        return stkDiv;
    }

    /**
     * 设置每股送转
     *
     * @param stkDiv 每股送转
     */
    public void setStkDiv(Float stkDiv) {
        this.stkDiv = stkDiv;
    }

    /**
     * 获取每股送股比例
     *
     * @return stk_bo_rate - 每股送股比例
     */
    public Float getStkBoRate() {
        return stkBoRate;
    }

    /**
     * 设置每股送股比例
     *
     * @param stkBoRate 每股送股比例
     */
    public void setStkBoRate(Float stkBoRate) {
        this.stkBoRate = stkBoRate;
    }

    /**
     * 获取每股转增比例
     *
     * @return stk_co_rate - 每股转增比例
     */
    public Float getStkCoRate() {
        return stkCoRate;
    }

    /**
     * 设置每股转增比例
     *
     * @param stkCoRate 每股转增比例
     */
    public void setStkCoRate(Float stkCoRate) {
        this.stkCoRate = stkCoRate;
    }

    /**
     * 获取每股分红（税后）
     *
     * @return cash_div - 每股分红（税后）
     */
    public Float getCashDiv() {
        return cashDiv;
    }

    /**
     * 设置每股分红（税后）
     *
     * @param cashDiv 每股分红（税后）
     */
    public void setCashDiv(Float cashDiv) {
        this.cashDiv = cashDiv;
    }

    /**
     * 获取每股分红（税前）
     *
     * @return cash_div_tax - 每股分红（税前）
     */
    public Float getCashDivTax() {
        return cashDivTax;
    }

    /**
     * 设置每股分红（税前）
     *
     * @param cashDivTax 每股分红（税前）
     */
    public void setCashDivTax(Float cashDivTax) {
        this.cashDivTax = cashDivTax;
    }

    /**
     * 获取股权登记日
     *
     * @return record_date - 股权登记日
     */
    public String getRecordDate() {
        return recordDate;
    }

    /**
     * 设置股权登记日
     *
     * @param recordDate 股权登记日
     */
    public void setRecordDate(String recordDate) {
        this.recordDate = recordDate;
    }

    /**
     * 获取除权除息日
     *
     * @return ex_date - 除权除息日
     */
    public String getExDate() {
        return exDate;
    }

    /**
     * 设置除权除息日
     *
     * @param exDate 除权除息日
     */
    public void setExDate(String exDate) {
        this.exDate = exDate;
    }

    /**
     * 获取派息日
     *
     * @return pay_date - 派息日
     */
    public String getPayDate() {
        return payDate;
    }

    /**
     * 设置派息日
     *
     * @param payDate 派息日
     */
    public void setPayDate(String payDate) {
        this.payDate = payDate;
    }

    /**
     * 获取红股上市日
     *
     * @return div_listdate - 红股上市日
     */
    public String getDivListdate() {
        return divListdate;
    }

    /**
     * 设置红股上市日
     *
     * @param divListdate 红股上市日
     */
    public void setDivListdate(String divListdate) {
        this.divListdate = divListdate;
    }

    /**
     * 获取实施公告日
     *
     * @return imp_ann_date - 实施公告日
     */
    public String getImpAnnDate() {
        return impAnnDate;
    }

    /**
     * 设置实施公告日
     *
     * @param impAnnDate 实施公告日
     */
    public void setImpAnnDate(String impAnnDate) {
        this.impAnnDate = impAnnDate;
    }

    /**
     * 获取基准日
     *
     * @return base_date - 基准日
     */
    public String getBaseDate() {
        return baseDate;
    }

    /**
     * 设置基准日
     *
     * @param baseDate 基准日
     */
    public void setBaseDate(String baseDate) {
        this.baseDate = baseDate;
    }

    /**
     * 获取基准股本（万）
     *
     * @return base_share - 基准股本（万）
     */
    public Float getBaseShare() {
        return baseShare;
    }

    /**
     * 设置基准股本（万）
     *
     * @param baseShare 基准股本（万）
     */
    public void setBaseShare(Float baseShare) {
        this.baseShare = baseShare;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", tid=").append(tid);
        sb.append(", tsCode=").append(tsCode);
        sb.append(", endDate=").append(endDate);
        sb.append(", annDate=").append(annDate);
        sb.append(", divProc=").append(divProc);
        sb.append(", stkDiv=").append(stkDiv);
        sb.append(", stkBoRate=").append(stkBoRate);
        sb.append(", stkCoRate=").append(stkCoRate);
        sb.append(", cashDiv=").append(cashDiv);
        sb.append(", cashDivTax=").append(cashDivTax);
        sb.append(", recordDate=").append(recordDate);
        sb.append(", exDate=").append(exDate);
        sb.append(", payDate=").append(payDate);
        sb.append(", divListdate=").append(divListdate);
        sb.append(", impAnnDate=").append(impAnnDate);
        sb.append(", baseDate=").append(baseDate);
        sb.append(", baseShare=").append(baseShare);
        sb.append("]");
        return sb.toString();
    }
}